今さら人に聞けない
インターネットの仕組みとは?
みなさん、今は当たり前のようにネットで情報を収拾したり、Facebookに近況を書き込んだりしていますが、こういうことができるようになってからまだほんの20年ほどしか経っていません。
これほど便利なネットワークというのはどのようにして動いているのでしょうか。
拙著『文系でも知っておきたいプログラミングとプログラマーのこと』の第4章「全くわからない人のためのプログラミングとコンピュータの基礎知識」では、最低限これだけは押さえておきたい基礎の基礎を解説しています。
今日はその中から、インターネットの仕組みについて紹介しましょう。
まず、コンピュータがネットワークに接続されていない状態。これをスタンドアロンと言います。
一人で(alone)立っている(stand)わけですね。寂しい感じです。
ここにもう一台のコンピュータがやってきて、一対一で通信するネットワークがまず作られました。
これをピア・ツー・ピアと呼びます。
ピア(peer)は、同僚、仲間という意味があります。対等なわけですね。
しかしコンピュータがもっと増えて複数のコンピュータ同士でやりとりしようとすると、ピア・ツー・ピアだけでは限界が見えてきます。そこで、コンピュータの役割をクライアント(利用者)とサーバ(奉仕者)に分けて、複数のコンピュータからひとつのパワフルなサーバを同時に使うことにしました。
これがクライアント/サーバネットワークです。
さらに、コンピュータが増えてくると、ネットワークとネットワークを相互に接続するようになりました。それが網の目のように世界中のコンピュータをつないでいきます。
それがインターネットです。
インターネットでは、複数の経路でデータは伝送されます。途中でどのサーバを経由したとかは関係なしに様々なサーバにデータが中継されて届くようになっています。
たとえば、あなたが自宅のパソコンから「google.co.jp」にアクセスしようとすると、まず、パソコンから無線LAN(Wi-Fi)またはLANケーブル経由で自宅のルーターという機械にアクセスします。
ルーターは、光回線やその他のデジタル回線を通じてあなたが契約したプロバイダのサーバに接続します。
そしてまず、「google.co.jpとはどこですか?」という問い合わせを投げかけます。
ブラウザのアドレス欄に入力する「google.co.jp」のような文字列は、「ドメイン名」と呼ばれる名前です。これは世界のどこかにあるコンピュータの名前です。ただし、名前ではそのコンピュータが実際にどこにあるのか、インターネット上の場所がわからないので、まず「このドメインはどこを指していますか?」と問い合わせるのです。
どのプロバイダもドメインの問い合わせに対応するサーバを用意しています。
DNS(ドメイン・ネーム・サーバ)と言います。
しかし、インターネットでは日々いろいろな人たちが新しいコンピュータを接続したり切ったりしているので、契約したプロバイダのDNSが「google.co.jp」を知っているとは限りません。その場合、DNSはどうするかというと、他のDNSに「このドメイン知ってますか?」と問い合わせるのです。
うまく場所が見つかると、四つの数字が返って来ます。
たとえばgoogle.co.jpなら「173.194.117.175」などです。
この四つの数字をIPアドレスと呼びます。
IPアドレスはコンピュータの具体的な住所です。IPは「インターネット・プロトコル」の略で、世界でたったひとつの場所を示す数字です。
この数字さえわかれば、あとは好きな情報を送ることができます。
情報はパケットと呼ばれる塊にまとめて送られます。
このパケットに先ほど取得したIPアドレスを「宛先」として指定してサーバに渡すと、バケツリレー方式で目的のコンピュータに届けてくれるというわけです。
なにげなく検索するときでも、これだけの動きが起きているわけです。
ちょっと驚きかもしれませんね。
以上、簡単に解説しましたが、『文系でも知っておきたいプログラミングとプログラマーのこと』では、第4章にてコンピュータのしくみやキーボードのあれこれ、プログラミング言語、オープンライセンスほかについて解説しています。
知ってるようで知らなかった、毎日使っているコンピュータやプログラムのことをざっくり知りたい人は、巻末付録の「プログラミング&プログラマー用語辞典」と併せて一読ください。